perm filename PTMOVX.F4[PAG,LCS]4 blob sn#597511 filedate 1981-07-04 generic text, type T, neo UTF8
00100	C******  PTMOVE.F4  ALSO SUBR. TURN (FOR PAGE-TURN FINDING)
00200		SUBROUTINE PTMOVE(RN,PWDS)
00300		IMPLICIT INTEGER(A-Q,S-Z)
00400		REAL POS,EXTEN,PRCNT,ACCX,SPFAC
00500		DIMENSION R(2,400),IR(2,400),RN(1),PWDS(1)
00600		COMMON/KNR/KR(400) /NNP/NP(400) /JSTFY/ROV,PRCNT,RJSZ
00700		COMMON/STF/RSTFAC(0/7),RSTJ2 /KJY/ KY,JY /JWDS/RRN(3300)
00800		COMMON R2,JA,CENTR,J2,RJQ(18),RNO,JR,LX,RDIS
00900		COMMON/POSI/STFF(0/7),JJ2,POS/LLL/ITEM,LL,I,IX
01000		1 /IPG/IPG,JPG,BRACK(8),RSTNUM(8),RPSZ(8)
01100	      EQUIVALENCE (R5,RJQ(3)),(R4,RJQ(2))
01200		1,(R3,RJQ(1)),(R8,RJQ(6)),(R9,RJQ(7))
01300		1,(IR,R,RRN)
01400		DATA RSP/2.7/,RI/4.7/,SPFAC/2.7/
01500	C RI IS SIZE FACTOR FOR SPACING. IF LARGER THEN REQUIRES MORE SPACE.
01600		JJ2=-1
01700		J2=0
01800	C  99=BACKUP
01900		IF(LL.EQ.'J')GO TO 12
02000		RDIS=0
02100	CCC66	NST=1
02200		JJ=0 
02300		IF(R4.NE.R8.OR.R5.NE.R9)JJ=-1
02400		JY=0
02500	C  JY IS CHANGED IN GETPTS
02600		IF(JJ)CALL GETPTS(LX,RN,PWDS)
02650	C****** LX NOT USED IN GETPTS ********
02700		IF(JY.EQ.0)RETURN
02800		CALL MOVIT(RN,KR,R4,R5,R8,R9)
02900		RETURN
03000	12	IF(R4.EQ.0)R4=.001
03100	CCC	IF(R5.EQ.0)R5=200
03200		RCNT=0
03300		RRT=R5
03400		RZRO=R4
03500		RJSZ=RI
03600		CALL GETPTS(LX,RN,PWDS)
03660	C****** LX NOT USED IN GETPTS ********
03700		IF(JY.EQ.0)RETURN
03800		ROV=RRT
03900		PRCNT=1.
04000	CCC NOT USED IN PAGE	R7=R2
04100	19	IF(RCNT.GT.9)GO TO 101
04200		RJSZ=RJSZ-.06
04300		RP=PRCNT
04400		RCNT=RCNT+1
04500	
04600		CALL JUSTFY(JPG-1,R,IR,KR,NP,RN,RPSZ,-1.0,R4,R5,R6,R8,R9)
04700	C RPSZ HAS ADJUSTED SIZE FACTOR FOR EACH STAFF.
04800	CCC	CALL JUSTFY(JPG-1,R,IR,KR,NP,RN,RSTFAC,-1.0,R4,R5,R6,R8,R9)
04900	
05000	110	IF(ROV.LE.RRT+.01)RETURN
05100		IF(RJSZ.GT.4)RJSZ=4
05200		PRCNT=(ROV-RZRO)/(RRT-RZRO)
05300		IF(PRCNT.NE.RP)GO TO 19
05400	C  GO BACK AND EXPAND SOME MORE
05500	101	R4=RZRO
05600		R5=ROV
05700		R8=RZRO
05800		R9=RRT-.001
05900	C  JUSTIFYING SPACE DIMINISHES EACH TIME AROUND.
06000		CALL MOVIT(RN,KR,R4,R5,R8,R9)
06100	C  RVX SHOULD BE FARTHEST POINT TO RIGHT.
06200		END
06300	
06400		SUBROUTINE TURN(J,K,L,X)
06500	C  FINDS RESTS BEFORE AND AFTER BAR LINES FOR PAGE TURNS
06600		COMMON /PX/KPN(1) /Q/Q(1)
06700		DATA RMETER/4.0/
06800		DO 1 M=J,K,L
06900		R=CODEN(KPN,M,Q,N)
07000		IF(R.EQ.1)RETURN
07100		IF(R.EQ.4)RETURN
07200		IF(R.NE.18)GO TO 3
07300	C FINDS LAST METER GIVEN (4/4 IS DEFAULT)
07400		IF(Q(N+5).LT.98)GO TO 4
07500		RMETER=4
07600		GO TO 1
07700	4	RMETER=4.01/Q(N+6)*Q(N+5)
07800	C 2ND PART OF COMPOSITE METERS ARE IGNORED.*******
07900		GO TO 1
08000	3	IF(R.NE.2)GO TO 1
08100		IF(Q(N).LT.6)GO TO 2
08200	C LOOK  FOR NUMBERED RESTS AND REPEAT BARS (P8=-4, -5)
08300		IF(Q(N+8).LE.-4)RETURN
08400	C NOW WE HAVE A NUMBERED REST.  MULT. NUMB. BY RHYTH. VALUE OF METER.
08500		X=X+Q(N+8)*RMETER
08600		GO TO 1
08700	2	X=X+Q(N+7)
08800	1	CONTINUE
08900		END